@echo off
REM 自动检测Python版本并启动AI服务的脚本

REM 设置字符编码为UTF-8
chcp 65001 > nul

REM 脚本标题
cls
echo ======================================================
echo                🤖 自动运行并启动AI服务               
echo ======================================================
echo.

REM 1. 检查Python是否安装
python --version >nul 2>&1
if %errorlevel% neq 0 (
echo ❌ 未安装Python！请先安装Python 3.10+（推荐3.11）
echo. 
echo 安装完成后，请重新运行此脚本。
echo.
pause
exit /b 1
)

REM 2. 检查Python版本
for /f "tokens=2 delims=." %%a in ('python --version 2^>^&1') do (
    set "PYTHON_MAJOR=%%a"
)
for /f "tokens=3 delims=." %%a in ('python --version 2^>^&1') do (
    set "PYTHON_MINOR=%%a"
)

REM 提取PYTHON_MINOR中的数字部分（去掉可能的非数字字符）
set "PYTHON_MINOR_NUM=%PYTHON_MINOR:~0,2%"
for /f "delims=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" %%a in ("%PYTHON_MINOR_NUM%") do set "PYTHON_MINOR_NUM=%%a"

REM 检查Python版本是否符合要求
if %PYTHON_MAJOR% lss 3 (
echo ❌ Python版本过低！需要Python 3.10+
echo 当前版本: %PYTHON_MAJOR%.%PYTHON_MINOR%
echo.
pause
exit /b 1
)
if %PYTHON_MAJOR% equ 3 if %PYTHON_MINOR_NUM% lss 10 (
echo ❌ Python版本过低！需要Python 3.10+
echo 当前版本: 3.%PYTHON_MINOR%
echo.
pause
exit /b 1
)

if %PYTHON_MINOR_NUM% geq 11 (
echo ✅ Python版本: 3.%PYTHON_MINOR% （推荐版本）
) else (
echo ✅ Python版本: 3.%PYTHON_MINOR% （满足最低要求）
echo 💡 建议升级到Python 3.11以获得更好的兼容性
)
echo.

REM 3. 创建并激活虚拟环境
set "VENV_DIR=%~dp0ai\.venv"
if not exist "%VENV_DIR%" (
echo 📁 创建Python虚拟环境...
python -m venv "%VENV_DIR%"
if %errorlevel% neq 0 (
echo ❌ 创建虚拟环境失败！
echo.
pause
exit /b 1
)
echo ✅ 虚拟环境创建成功
echo.
)

REM 4. 激活虚拟环境
echo 🔄 激活虚拟环境...
call "%VENV_DIR%\Scripts\activate.bat"
if %errorlevel% neq 0 (
echo ❌ 激活虚拟环境失败！
echo 请手动激活虚拟环境并安装依赖。
echo.
pause
exit /b 1
)
echo ✅ 虚拟环境已激活 (%VIRTUAL_ENV%)
echo.

REM 5. 升级pip
echo 🔧 升级pip...
python -m pip install --upgrade pip >nul 2>&1
if %errorlevel% neq 0 (
echo ⚠️ pip升级失败，继续尝试安装依赖
echo.
)

REM 6. 安装依赖 - 特别处理Pillow版本
echo 📦 安装Python依赖...

REM 先安装Pillow的兼容版本
echo    安装Pillow（兼容性处理）...
pip install pillow==10.2.0 >nul 2>&1
if %errorlevel% neq 0 (
echo ⚠️ Pillow安装失败，尝试使用requirements.txt中的版本...
)

REM 安装其他依赖
echo    安装所有依赖（可能需要几分钟）...
pip install -r "%~dp0ai\requirements.txt"
if %errorlevel% neq 0 (
echo ❌ 依赖安装失败！
echo 请检查网络连接或尝试手动安装。
echo.
call deactivate
pause
exit /b 1
)
echo ✅ 所有依赖安装成功
echo.

REM 7. 设置环境变量
echo 🔑 设置AI服务环境变量...
set "QWEN_API_KEY=sk-77fea248756e43b5a3bb63838dd2da24"
set "DASHSCOPE_API_KEY=%QWEN_API_KEY%"
set "AI_HOST=0.0.0.0"
set "AI_PORT=8000"
set "AI_CORS_ORIGINS=http://localhost:5173,http://localhost:8080"
echo ✅ API密钥和服务配置已设置
echo.

REM 8. 启动AI服务
echo 🚀 正在启动AI服务...
echo.
echo ℹ️ 服务将在端口 %AI_PORT% 上运行
echo ℹ️ 访问 http://localhost:%AI_PORT%/health 检查服务状态
cd /d "%~dp0ai"
python main.py

REM 9. 清理工作
echo.
echo ⏹️ AI服务已停止
echo 清理虚拟环境...
call deactivate
echo.
echo ======================================================
echo                   🔧 启动脚本已完成                    
echo ======================================================

pause